<!-- HTML header for doxygen 1.8.6-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/xhtml;charset=utf-8" http-equiv="Content-Type"/>
<meta content="IE=9" http-equiv="X-UA-Compatible"/>
<meta content="Doxygen 1.8.13" name="generator"/>
<title>OpenCV: cv::Algorithm Class Reference</title>
<link href="../../opencv.ico" rel="shortcut icon" type="image/x-icon"/>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
<script src="../../jquery.js" type="text/javascript"></script>
<script src="../../dynsections.js" type="text/javascript"></script>
<script src="../../tutorial-utils.js" type="text/javascript"></script>
<link href="../../search/search.css" rel="stylesheet" type="text/css"/>
<script src="../../search/searchdata.js" type="text/javascript"></script>
<script src="../../search/search.js" type="text/javascript"></script>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
//<![CDATA[
MathJax.Hub.Config(
{
  TeX: {
      Macros: {
          matTT: [ "\\[ \\left|\\begin{array}{ccc} #1 & #2 & #3\\\\ #4 & #5 & #6\\\\ #7 & #8 & #9 \\end{array}\\right| \\]", 9],
          fork: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ \\end{array} \\right.", 4],
          forkthree: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ #5 & \\mbox{#6}\\\\ \\end{array} \\right.", 6],
          forkfour: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ #5 & \\mbox{#6}\\\\ #7 & \\mbox{#8}\\\\ \\end{array} \\right.", 8],
          vecthree: ["\\begin{bmatrix} #1\\\\ #2\\\\ #3 \\end{bmatrix}", 3],
          vecthreethree: ["\\begin{bmatrix} #1 & #2 & #3\\\\ #4 & #5 & #6\\\\ #7 & #8 & #9 \\end{bmatrix}", 9],
          cameramatrix: ["#1 = \\begin{bmatrix} f_x & 0 & c_x\\\\ 0 & f_y & c_y\\\\ 0 & 0 & 1 \\end{bmatrix}", 1],
          distcoeffs: ["(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]]) \\text{ of 4, 5, 8, 12 or 14 elements}"],
          distcoeffsfisheye: ["(k_1, k_2, k_3, k_4)"],
          hdotsfor: ["\\dots", 1],
          mathbbm: ["\\mathbb{#1}", 1],
          bordermatrix: ["\\matrix{#1}", 1]
      }
  }
}
);
//]]>
</script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js" type="text/javascript"></script>
<link href="../../doxygen.css" rel="stylesheet" type="text/css"/>
<link href="../../stylesheet.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<!--#include virtual="/google-search.html"-->
<table cellpadding="0" cellspacing="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="../../opencv-logo-small.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">OpenCV
    <span id="projectnumber">4.5.2</span>
   </div>
   <div id="projectbrief">Open Source Computer Vision</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
</script>
<script src="../../menudata.js" type="text/javascript"></script>
<script src="../../menu.js" type="text/javascript"></script>
<script type="text/javascript">
$(function() {
  initMenu('../../',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow" onkeydown="return searchBox.OnSearchSelectKey(event)" onmouseout="return searchBox.OnSearchSelectHide()" onmouseover="return searchBox.OnSearchSelectShow()">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe frameborder="0" id="MSearchResults" name="MSearchResults" src="javascript:void(0)">
</iframe>
</div>
<div class="navpath" id="nav-path">
  <ul>
<li class="navelem"><a class="el" href="../../d2/d75/namespacecv.html">cv</a></li><li class="navelem"><a class="el" href="../../d3/d46/classcv_1_1Algorithm.html">Algorithm</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> |
<a href="#pub-static-methods">Static Public Member Functions</a> |
<a href="#pro-methods">Protected Member Functions</a> |
<a href="../../d8/dc2/classcv_1_1Algorithm-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">cv::Algorithm Class Reference<div class="ingroups"><a class="el" href="../../d0/de1/group__core.html">Core functionality</a> » <a class="el" href="../../dc/d84/group__core__basic.html">Basic structures</a></div></div>  </div>
</div><!--header-->
<div class="contents">
<p>This is a base class for all more or less complex algorithms in OpenCV.  
 <a href="../../d3/d46/classcv_1_1Algorithm.html#details">More...</a></p>
<p><code>#include &lt;opencv2/core.hpp&gt;</code></p>
<div class="dynheader">
Inheritance diagram for cv::Algorithm:</div>
<div class="dyncontent">
 <div class="center">
  <img alt="" src="../../d3/d46/classcv_1_1Algorithm.png" usemap="#cv::Algorithm_map"/>
  <map id="cv::Algorithm_map" name="cv::Algorithm_map">
<area alt="cv::AlignExposures" coords="393,56,776,80" href="../../d4/df2/classcv_1_1AlignExposures.html" shape="rect" title="The base class for algorithms that align images of the same scene with different exposures. "/>
<area alt="cv::BackgroundSubtractor" coords="393,112,776,136" href="../../d7/df6/classcv_1_1BackgroundSubtractor.html" shape="rect" title="Base class for background/foreground segmentation. : "/>
<area alt="cv::BaseCascadeClassifier" coords="393,168,776,192" href="../../da/dd5/classcv_1_1BaseCascadeClassifier.html" shape="rect"/>
<area alt="cv::bgsegm::SyntheticSequenceGenerator" coords="393,224,776,248" href="../../d1/dda/classcv_1_1bgsegm_1_1SyntheticSequenceGenerator.html" shape="rect" title="Synthetic frame sequence generator for testing background subtraction algorithms. ..."/>
<area alt="cv::bioinspired::Retina" coords="393,280,776,304" href="../../dc/d54/classcv_1_1bioinspired_1_1Retina.html" shape="rect" title="class which allows the Gipsa/Listic Labs model to be used with OpenCV. "/>
<area alt="cv::bioinspired::RetinaFastToneMapping" coords="393,336,776,360" href="../../dd/d73/classcv_1_1bioinspired_1_1RetinaFastToneMapping.html" shape="rect" title="a wrapper class which allows the tone mapping algorithm of Meylan&amp;al(2007) to be used with OpenCV..."/>
<area alt="cv::bioinspired::TransientAreasSegmentationModule" coords="393,392,776,416" href="../../da/d6e/classcv_1_1bioinspired_1_1TransientAreasSegmentationModule.html" shape="rect" title="class which provides a transient/moving areas segmentation module "/>
<area alt="cv::CalibrateCRF" coords="393,448,776,472" href="../../dd/de3/classcv_1_1CalibrateCRF.html" shape="rect" title="The base class for camera response calibration algorithms. "/>
<area alt="cv::ccalib::CustomPattern" coords="393,504,776,528" href="../../d3/d3e/classcv_1_1ccalib_1_1CustomPattern.html" shape="rect"/>
<area alt="cv::CLAHE" coords="393,560,776,584" href="../../d6/db6/classcv_1_1CLAHE.html" shape="rect" title="Base class for Contrast Limited Adaptive Histogram Equalization. "/>
<area alt="cv::cuda::CannyEdgeDetector" coords="393,616,776,640" href="../../d0/d43/classcv_1_1cuda_1_1CannyEdgeDetector.html" shape="rect" title="Base class for Canny Edge Detector. : "/>
<area alt="cv::cuda::CascadeClassifier" coords="393,672,776,696" href="../../d9/d80/classcv_1_1cuda_1_1CascadeClassifier.html" shape="rect" title="Cascade classifier class used for object detection. Supports HAAR and LBP cascades. : "/>
<area alt="cv::cuda::Convolution" coords="393,728,776,752" href="../../d4/d25/classcv_1_1cuda_1_1Convolution.html" shape="rect" title="Base class for convolution (or cross-correlation) operator. : "/>
<area alt="cv::cuda::CornernessCriteria" coords="393,784,776,808" href="../../dd/d63/classcv_1_1cuda_1_1CornernessCriteria.html" shape="rect" title="Base class for Cornerness Criteria computation. : "/>
<area alt="cv::cuda::CornersDetector" coords="393,840,776,864" href="../../de/d95/classcv_1_1cuda_1_1CornersDetector.html" shape="rect" title="Base class for Corners Detector. : "/>
<area alt="cv::cuda::DenseOpticalFlow" coords="393,896,776,920" href="../../d6/d4a/classcv_1_1cuda_1_1DenseOpticalFlow.html" shape="rect" title="Base interface for dense optical flow algorithms. "/>
<area alt="cv::cuda::DescriptorMatcher" coords="393,952,776,976" href="../../dd/dc5/classcv_1_1cuda_1_1DescriptorMatcher.html" shape="rect" title="Abstract base class for matching keypoint descriptors. "/>
<area alt="cv::cuda::DFT" coords="393,1008,776,1032" href="../../dc/de5/classcv_1_1cuda_1_1DFT.html" shape="rect" title="Base class for DFT operator as a cv::Algorithm. : "/>
<area alt="cv::cuda::DisparityBilateralFilter" coords="393,1064,776,1088" href="../../d8/d4f/classcv_1_1cuda_1_1DisparityBilateralFilter.html" shape="rect" title="Class refining a disparity map using joint bilateral filtering. : "/>
<area alt="cv::cuda::Filter" coords="393,1120,776,1144" href="../../dc/d2b/classcv_1_1cuda_1_1Filter.html" shape="rect" title="Common interface for all CUDA filters : "/>
<area alt="cv::cuda::HOG" coords="393,1176,776,1200" href="../../de/da6/classcv_1_1cuda_1_1HOG.html" shape="rect" title="The class implements Histogram of Oriented Gradients () object detector. "/>
<area alt="cv::cuda::HoughCirclesDetector" coords="393,1232,776,1256" href="../../da/d80/classcv_1_1cuda_1_1HoughCirclesDetector.html" shape="rect" title="Base class for circles detector algorithm. : "/>
<area alt="cv::cuda::HoughLinesDetector" coords="393,1288,776,1312" href="../../d2/dcd/classcv_1_1cuda_1_1HoughLinesDetector.html" shape="rect" title="Base class for lines detector algorithm. : "/>
<area alt="cv::cuda::HoughSegmentDetector" coords="393,1344,776,1368" href="../../d6/df9/classcv_1_1cuda_1_1HoughSegmentDetector.html" shape="rect" title="Base class for line segments detector algorithm. : "/>
<area alt="cv::cuda::ImagePyramid" coords="393,1400,776,1424" href="../../d2/d77/classcv_1_1cuda_1_1ImagePyramid.html" shape="rect"/>
<area alt="cv::cuda::LookUpTable" coords="393,1456,776,1480" href="../../df/d29/classcv_1_1cuda_1_1LookUpTable.html" shape="rect" title="Base class for transform using lookup table. "/>
<area alt="cv::cuda::NvidiaHWOpticalFlow" coords="393,1512,776,1536" href="../../d5/d26/classcv_1_1cuda_1_1NvidiaHWOpticalFlow.html" shape="rect" title="Base Interface for optical flow algorithms using NVIDIA Optical Flow SDK. "/>
<area alt="cv::cuda::SparseOpticalFlow" coords="393,1568,776,1592" href="../../d5/dcf/classcv_1_1cuda_1_1SparseOpticalFlow.html" shape="rect" title="Base interface for sparse optical flow algorithms. "/>
<area alt="cv::cuda::TemplateMatching" coords="393,1624,776,1648" href="../../d2/d58/classcv_1_1cuda_1_1TemplateMatching.html" shape="rect" title="Base class for Template Matching. : "/>
<area alt="cv::DenseOpticalFlow" coords="393,1680,776,1704" href="../../df/dde/classcv_1_1DenseOpticalFlow.html" shape="rect"/>
<area alt="cv::DescriptorMatcher" coords="393,1736,776,1760" href="../../db/d39/classcv_1_1DescriptorMatcher.html" shape="rect" title="Abstract base class for matching keypoint descriptors. "/>
<area alt="cv::dnn::Layer" coords="393,1792,776,1816" href="../../d3/d6c/classcv_1_1dnn_1_1Layer.html" shape="rect" title="This interface class allows to build new Layers - are building blocks of networks. "/>
<area alt="cv::face::BIF" coords="393,1848,776,1872" href="../../dc/d12/classcv_1_1face_1_1BIF.html" shape="rect"/>
<area alt="cv::face::Facemark" coords="393,1904,776,1928" href="../../db/dd8/classcv_1_1face_1_1Facemark.html" shape="rect" title="Abstract base class for all facemark models. "/>
<area alt="cv::face::FaceRecognizer" coords="393,1960,776,1984" href="../../dd/d65/classcv_1_1face_1_1FaceRecognizer.html" shape="rect" title="Abstract base class for all face recognition models. "/>
<area alt="cv::face::MACE" coords="393,2016,776,2040" href="../../d9/d5c/classcv_1_1face_1_1MACE.html" shape="rect" title="Minimum Average Correlation Energy Filter useful for authentication with (cancellable) biometrical fe..."/>
<area alt="cv::Feature2D" coords="393,2072,776,2096" href="../../d0/d13/classcv_1_1Feature2D.html" shape="rect" title="Abstract base class for 2D image feature detectors and descriptor extractors. "/>
<area alt="cv::freetype::FreeType2" coords="393,2128,776,2152" href="../../d9/dfa/classcv_1_1freetype_1_1FreeType2.html" shape="rect"/>
<area alt="cv::GeneralizedHough" coords="393,2184,776,2208" href="../../d7/dd4/classcv_1_1GeneralizedHough.html" shape="rect" title="finds arbitrary template in the grayscale image using Generalized Hough Transform ..."/>
<area alt="cv::hfs::HfsSegment" coords="393,2240,776,2264" href="../../d2/de0/classcv_1_1hfs_1_1HfsSegment.html" shape="rect"/>
<area alt="cv::HistogramCostExtractor" coords="393,2296,776,2320" href="../../df/d9a/classcv_1_1HistogramCostExtractor.html" shape="rect" title="Abstract base class for histogram cost algorithms. "/>
<area alt="cv::img_hash::ImgHashBase" coords="393,2352,776,2376" href="../../de/d29/classcv_1_1img__hash_1_1ImgHashBase.html" shape="rect" title="The base class for image hash algorithms. "/>
<area alt="cv::legacy::MultiTracker" coords="393,2408,776,2432" href="../../df/d4a/classcv_1_1legacy_1_1MultiTracker.html" shape="rect" title="This class is used to track multiple objects using the specified tracker algorithm. "/>
<area alt="cv::legacy::Tracker" coords="393,2464,776,2488" href="../../db/dfe/classcv_1_1legacy_1_1Tracker.html" shape="rect" title="Base abstract class for the long-term tracker: "/>
<area alt="cv::line_descriptor::BinaryDescriptor" coords="393,2520,776,2544" href="../../d6/d83/classcv_1_1line__descriptor_1_1BinaryDescriptor.html" shape="rect" title="Class implements both functionalities for detection of lines and computation of their binary descript..."/>
<area alt="cv::line_descriptor::BinaryDescriptorMatcher" coords="393,2576,776,2600" href="../../d2/dde/classcv_1_1line__descriptor_1_1BinaryDescriptorMatcher.html" shape="rect" title="furnishes all functionalities for querying a dataset provided by user or internal to class (that user..."/>
<area alt="cv::line_descriptor::LSDDetector" coords="393,2632,776,2656" href="../../d1/dbd/classcv_1_1line__descriptor_1_1LSDDetector.html" shape="rect"/>
<area alt="cv::LineSegmentDetector" coords="393,2688,776,2712" href="../../db/d73/classcv_1_1LineSegmentDetector.html" shape="rect" title="Line segment detector class. "/>
<area alt="cv::LMSolver" coords="393,2744,776,2768" href="../../d3/d6d/classcv_1_1LMSolver.html" shape="rect"/>
<area alt="cv::mcc::CCheckerDetector" coords="393,2800,776,2824" href="../../d9/d53/classcv_1_1mcc_1_1CCheckerDetector.html" shape="rect" title="A class to find the positions of the ColorCharts in the image. "/>
<area alt="cv::MergeExposures" coords="393,2856,776,2880" href="../../d6/d5e/classcv_1_1MergeExposures.html" shape="rect" title="The base class algorithms that can merge exposure sequence to a single image. "/>
<area alt="cv::MinProblemSolver" coords="393,2912,776,2936" href="../../df/d11/classcv_1_1MinProblemSolver.html" shape="rect" title="Basic interface for all solvers. "/>
<area alt="cv::ml::StatModel" coords="393,2968,776,2992" href="../../db/d7d/classcv_1_1ml_1_1StatModel.html" shape="rect" title="Base class for statistical models in OpenCV ML. "/>
<area alt="cv::ml::SVM::Kernel" coords="393,3024,776,3048" href="../../d7/db8/classcv_1_1ml_1_1SVM_1_1Kernel.html" shape="rect"/>
<area alt="cv::optflow::GPCForest&lt; T &gt;" coords="393,3080,776,3104" href="../../da/dfe/classcv_1_1optflow_1_1GPCForest.html" shape="rect"/>
<area alt="cv::optflow::GPCTree" coords="393,3136,776,3160" href="../../d4/d4d/classcv_1_1optflow_1_1GPCTree.html" shape="rect" title="Class for individual tree. "/>
<area alt="cv::phase_unwrapping::PhaseUnwrapping" coords="393,3192,776,3216" href="../../d8/d83/classcv_1_1phase__unwrapping_1_1PhaseUnwrapping.html" shape="rect" title="Abstract base class for phase unwrapping. "/>
<area alt="cv::plot::Plot2d" coords="393,3248,776,3272" href="../../d0/d1e/classcv_1_1plot_1_1Plot2d.html" shape="rect"/>
<area alt="cv::quality::QualityBase" coords="393,3304,776,3328" href="../../da/d83/classcv_1_1quality_1_1QualityBase.html" shape="rect"/>
<area alt="cv::rapid::Tracker" coords="393,3360,776,3384" href="../../dc/d48/classcv_1_1rapid_1_1Tracker.html" shape="rect" title="Abstract base class for stateful silhouette trackers. "/>
<area alt="cv::rgbd::DepthCleaner" coords="393,3416,776,3440" href="../../d9/d5e/classcv_1_1rgbd_1_1DepthCleaner.html" shape="rect"/>
<area alt="cv::rgbd::Odometry" coords="393,3472,776,3496" href="../../df/ddc/classcv_1_1rgbd_1_1Odometry.html" shape="rect"/>
<area alt="cv::rgbd::RgbdNormals" coords="393,3528,776,3552" href="../../d1/d5b/classcv_1_1rgbd_1_1RgbdNormals.html" shape="rect"/>
<area alt="cv::rgbd::RgbdPlane" coords="393,3584,776,3608" href="../../d6/d50/classcv_1_1rgbd_1_1RgbdPlane.html" shape="rect"/>
<area alt="cv::saliency::Saliency" coords="393,3640,776,3664" href="../../d9/dcd/classcv_1_1saliency_1_1Saliency.html" shape="rect"/>
<area alt="cv::ShapeDistanceExtractor" coords="393,3696,776,3720" href="../../dc/dbf/classcv_1_1ShapeDistanceExtractor.html" shape="rect" title="Abstract base class for shape distance algorithms. "/>
<area alt="cv::ShapeTransformer" coords="393,3752,776,3776" href="../../df/dfe/classcv_1_1ShapeTransformer.html" shape="rect" title="Abstract base class for shape transformation algorithms. "/>
<area alt="cv::SparseOpticalFlow" coords="393,3808,776,3832" href="../../de/d14/classcv_1_1SparseOpticalFlow.html" shape="rect" title="Base interface for sparse optical flow algorithms. "/>
<area alt="cv::stereo::StereoMatcher" coords="393,3864,776,3888" href="../../d9/d07/classcv_1_1stereo_1_1StereoMatcher.html" shape="rect" title="Filters off small noise blobs (speckles) in the disparity map. "/>
<area alt="cv::StereoMatcher" coords="393,3920,776,3944" href="../../d2/d6e/classcv_1_1StereoMatcher.html" shape="rect" title="The base class for stereo correspondence algorithms. "/>
<area alt="cv::structured_light::StructuredLightPattern" coords="393,3976,776,4000" href="../../d9/dbb/classcv_1_1structured__light_1_1StructuredLightPattern.html" shape="rect" title="Abstract base class for generating and decoding structured light patterns. "/>
<area alt="cv::superres::DenseOpticalFlowExt" coords="393,4032,776,4056" href="../../d1/d21/classcv_1_1superres_1_1DenseOpticalFlowExt.html" shape="rect"/>
<area alt="cv::superres::SuperResolution" coords="393,4088,776,4112" href="../../d9/dd6/classcv_1_1superres_1_1SuperResolution.html" shape="rect" title="Base class for Super Resolution algorithms. "/>
<area alt="cv::text::ERFilter" coords="393,4144,776,4168" href="../../da/def/classcv_1_1text_1_1ERFilter.html" shape="rect" title="Base class for 1st and 2nd stages of Neumann and Matas scene text detection algorithm ..."/>
<area alt="cv::Tonemap" coords="393,4200,776,4224" href="../../d8/d5e/classcv_1_1Tonemap.html" shape="rect" title="Base class for tonemapping algorithms - tools that are used to map HDR image to 8-bit range..."/>
<area alt="cv::xfeatures2d::PCTSignatures" coords="393,4256,776,4280" href="../../d0/d74/classcv_1_1xfeatures2d_1_1PCTSignatures.html" shape="rect" title="Class implementing PCT (position-color-texture) signature extraction as described in ..."/>
<area alt="cv::xfeatures2d::PCTSignaturesSQFD" coords="393,4312,776,4336" href="../../d4/dd1/classcv_1_1xfeatures2d_1_1PCTSignaturesSQFD.html" shape="rect" title="Class implementing Signature Quadratic Form Distance (SQFD). "/>
<area alt="cv::ximgproc::AdaptiveManifoldFilter" coords="393,4368,776,4392" href="../../de/db7/classcv_1_1ximgproc_1_1AdaptiveManifoldFilter.html" shape="rect" title="Interface for Adaptive Manifold Filter realizations. "/>
<area alt="cv::ximgproc::ContourFitting" coords="393,4424,776,4448" href="../../d5/d72/classcv_1_1ximgproc_1_1ContourFitting.html" shape="rect" title="Class for ContourFitting algorithms. ContourFitting match two contours  and  minimizing distance  whe..."/>
<area alt="cv::ximgproc::DisparityFilter" coords="393,4480,776,4504" href="../../db/d72/classcv_1_1ximgproc_1_1DisparityFilter.html" shape="rect" title="Main interface for all disparity map filters. "/>
<area alt="cv::ximgproc::DTFilter" coords="393,4536,776,4560" href="../../d3/d9d/classcv_1_1ximgproc_1_1DTFilter.html" shape="rect" title="Interface for realizations of Domain Transform filter. "/>
<area alt="cv::ximgproc::EdgeBoxes" coords="393,4592,776,4616" href="../../dd/d65/classcv_1_1ximgproc_1_1EdgeBoxes.html" shape="rect" title="Class implementing EdgeBoxes algorithm from  : "/>
<area alt="cv::ximgproc::EdgeDrawing" coords="393,4648,776,4672" href="../../d1/d1c/classcv_1_1ximgproc_1_1EdgeDrawing.html" shape="rect" title="Class implementing the ED (EdgeDrawing) , EDLines , EDPF  and EDCircles  algorithms. "/>
<area alt="cv::ximgproc::FastBilateralSolverFilter" coords="393,4704,776,4728" href="../../db/d50/classcv_1_1ximgproc_1_1FastBilateralSolverFilter.html" shape="rect" title="Interface for implementations of Fast Bilateral Solver. "/>
<area alt="cv::ximgproc::FastGlobalSmootherFilter" coords="393,4760,776,4784" href="../../de/d13/classcv_1_1ximgproc_1_1FastGlobalSmootherFilter.html" shape="rect" title="Interface for implementations of Fast Global Smoother filter. "/>
<area alt="cv::ximgproc::FastLineDetector" coords="393,4816,776,4840" href="../../df/d4c/classcv_1_1ximgproc_1_1FastLineDetector.html" shape="rect" title="Class implementing the FLD (Fast Line Detector) algorithm described in  . "/>
<area alt="cv::ximgproc::GuidedFilter" coords="393,4872,776,4896" href="../../de/d73/classcv_1_1ximgproc_1_1GuidedFilter.html" shape="rect" title="Interface for realizations of Guided Filter. "/>
<area alt="cv::ximgproc::RFFeatureGetter" coords="393,4928,776,4952" href="../../dc/dca/classcv_1_1ximgproc_1_1RFFeatureGetter.html" shape="rect"/>
<area alt="cv::ximgproc::RidgeDetectionFilter" coords="393,4984,776,5008" href="../../d4/d36/classcv_1_1ximgproc_1_1RidgeDetectionFilter.html" shape="rect" title="Applies Ridge Detection Filter to an input image. Implements Ridge detection similar to the one in Ma..."/>
<area alt="cv::ximgproc::segmentation::GraphSegmentation" coords="393,5040,776,5064" href="../../dd/d19/classcv_1_1ximgproc_1_1segmentation_1_1GraphSegmentation.html" shape="rect" title="Graph Based Segmentation Algorithm. The class implements the algorithm described in  ..."/>
<area alt="cv::ximgproc::segmentation::SelectiveSearchSegmentation" coords="393,5096,776,5120" href="../../d6/d6d/classcv_1_1ximgproc_1_1segmentation_1_1SelectiveSearchSegmentation.html" shape="rect" title="Selective search segmentation algorithm The class implements the algorithm described in ..."/>
<area alt="cv::ximgproc::segmentation::SelectiveSearchSegmentationStrategy" coords="393,5152,776,5176" href="../../dc/d7a/classcv_1_1ximgproc_1_1segmentation_1_1SelectiveSearchSegmentationStrategy.html" shape="rect" title="Strategie for the selective search segmentation algorithm The class implements a generic stragery for..."/>
<area alt="cv::ximgproc::SparseMatchInterpolator" coords="393,5208,776,5232" href="../../d4/da8/classcv_1_1ximgproc_1_1SparseMatchInterpolator.html" shape="rect" title="Main interface for all filters, that take sparse matches as an input and produce a dense per-pixel ma..."/>
<area alt="cv::ximgproc::StructuredEdgeDetection" coords="393,5264,776,5288" href="../../d8/d54/classcv_1_1ximgproc_1_1StructuredEdgeDetection.html" shape="rect" title="Class implementing edge detection algorithm from  : "/>
<area alt="cv::ximgproc::SuperpixelLSC" coords="393,5320,776,5344" href="../../d5/da0/classcv_1_1ximgproc_1_1SuperpixelLSC.html" shape="rect" title="Class implementing the LSC (Linear Spectral Clustering) superpixels algorithm described in ..."/>
<area alt="cv::ximgproc::SuperpixelSEEDS" coords="393,5376,776,5400" href="../../df/d81/classcv_1_1ximgproc_1_1SuperpixelSEEDS.html" shape="rect" title="Class implementing the SEEDS (Superpixels Extracted via Energy-Driven Sampling) superpixels algorithm..."/>
<area alt="cv::ximgproc::SuperpixelSLIC" coords="393,5432,776,5456" href="../../d3/da9/classcv_1_1ximgproc_1_1SuperpixelSLIC.html" shape="rect" title="Class implementing the SLIC (Simple Linear Iterative Clustering) superpixels algorithm described in ..."/>
<area alt="cv::xphoto::WhiteBalancer" coords="393,5488,776,5512" href="../../d9/d7a/classcv_1_1xphoto_1_1WhiteBalancer.html" shape="rect" title="The base class for auto white balance algorithms. "/>
</map>
 </div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a827c8b2781ed17574805f373e6054ff1"><td align="right" class="memItemLeft" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/d46/classcv_1_1Algorithm.html#a827c8b2781ed17574805f373e6054ff1">Algorithm</a> ()</td></tr>
<tr class="separator:a827c8b2781ed17574805f373e6054ff1"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a8ae826127fa0f1f8d10a24841bd376f8"><td align="right" class="memItemLeft" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/d46/classcv_1_1Algorithm.html#a8ae826127fa0f1f8d10a24841bd376f8">~Algorithm</a> ()</td></tr>
<tr class="separator:a8ae826127fa0f1f8d10a24841bd376f8"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:aec9c965448e4dc851d7cacd3abd84cd1"><td align="right" class="memItemLeft" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/d46/classcv_1_1Algorithm.html#aec9c965448e4dc851d7cacd3abd84cd1">clear</a> ()</td></tr>
<tr class="memdesc:aec9c965448e4dc851d7cacd3abd84cd1"><td class="mdescLeft"> </td><td class="mdescRight">Clears the algorithm state.  <a href="#aec9c965448e4dc851d7cacd3abd84cd1">More...</a><br/></td></tr>
<tr class="separator:aec9c965448e4dc851d7cacd3abd84cd1"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ab6a18f1825475643e94381697d413972"><td align="right" class="memItemLeft" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/d46/classcv_1_1Algorithm.html#ab6a18f1825475643e94381697d413972">empty</a> () const</td></tr>
<tr class="memdesc:ab6a18f1825475643e94381697d413972"><td class="mdescLeft"> </td><td class="mdescRight">Returns true if the <a class="el" href="../../d3/d46/classcv_1_1Algorithm.html" title="This is a base class for all more or less complex algorithms in OpenCV. ">Algorithm</a> is empty (e.g. in the very beginning or after unsuccessful read.  <a href="#ab6a18f1825475643e94381697d413972">More...</a><br/></td></tr>
<tr class="separator:ab6a18f1825475643e94381697d413972"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a286fc82744ccab3d248aca44524266a9"><td align="right" class="memItemLeft" valign="top">virtual <a class="el" href="../../dc/d84/group__core__basic.html#ga1f6634802eeadfd7245bc75cf3e216c2">String</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/d46/classcv_1_1Algorithm.html#a286fc82744ccab3d248aca44524266a9">getDefaultName</a> () const</td></tr>
<tr class="separator:a286fc82744ccab3d248aca44524266a9"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:aef2ad3f4145bd6e8c3664eb1c4b5e1e6"><td align="right" class="memItemLeft" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/d46/classcv_1_1Algorithm.html#aef2ad3f4145bd6e8c3664eb1c4b5e1e6">read</a> (const <a class="el" href="../../de/dd9/classcv_1_1FileNode.html">FileNode</a> &amp;fn)</td></tr>
<tr class="memdesc:aef2ad3f4145bd6e8c3664eb1c4b5e1e6"><td class="mdescLeft"> </td><td class="mdescRight">Reads algorithm parameters from a file storage.  <a href="#aef2ad3f4145bd6e8c3664eb1c4b5e1e6">More...</a><br/></td></tr>
<tr class="separator:aef2ad3f4145bd6e8c3664eb1c4b5e1e6"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a0a880744bc4e3f45711444571df47d67"><td align="right" class="memItemLeft" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/d46/classcv_1_1Algorithm.html#a0a880744bc4e3f45711444571df47d67">save</a> (const <a class="el" href="../../dc/d84/group__core__basic.html#ga1f6634802eeadfd7245bc75cf3e216c2">String</a> &amp;filename) const</td></tr>
<tr class="separator:a0a880744bc4e3f45711444571df47d67"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a1f8ad7b8add515077367fb9949a174d2"><td align="right" class="memItemLeft" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/d46/classcv_1_1Algorithm.html#a1f8ad7b8add515077367fb9949a174d2">write</a> (<a class="el" href="../../da/d56/classcv_1_1FileStorage.html">FileStorage</a> &amp;fs) const</td></tr>
<tr class="memdesc:a1f8ad7b8add515077367fb9949a174d2"><td class="mdescLeft"> </td><td class="mdescRight">Stores algorithm parameters in a file storage.  <a href="#a1f8ad7b8add515077367fb9949a174d2">More...</a><br/></td></tr>
<tr class="separator:a1f8ad7b8add515077367fb9949a174d2"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a763a62d1b03042eef7d7fc3ac6c87c79"><td align="right" class="memItemLeft" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/d46/classcv_1_1Algorithm.html#a763a62d1b03042eef7d7fc3ac6c87c79">write</a> (const <a class="el" href="../../dc/d84/group__core__basic.html#ga6395ca871a678020c4a31fadf7e8cc63">Ptr</a>&lt; <a class="el" href="../../da/d56/classcv_1_1FileStorage.html">FileStorage</a> &gt; &amp;fs, const <a class="el" href="../../dc/d84/group__core__basic.html#ga1f6634802eeadfd7245bc75cf3e216c2">String</a> &amp;name=<a class="el" href="../../dc/d84/group__core__basic.html#ga1f6634802eeadfd7245bc75cf3e216c2">String</a>()) const</td></tr>
<tr class="memdesc:a763a62d1b03042eef7d7fc3ac6c87c79"><td class="mdescLeft"> </td><td class="mdescRight">simplified API for language bindings This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.  <a href="#a763a62d1b03042eef7d7fc3ac6c87c79">More...</a><br/></td></tr>
<tr class="separator:a763a62d1b03042eef7d7fc3ac6c87c79"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a623841c33b58ea9c4847da04607e067b"><td class="memTemplParams" colspan="2">template&lt;typename _Tp &gt; </td></tr>
<tr class="memitem:a623841c33b58ea9c4847da04607e067b"><td align="right" class="memTemplItemLeft" valign="top">static <a class="el" href="../../dc/d84/group__core__basic.html#ga6395ca871a678020c4a31fadf7e8cc63">Ptr</a>&lt; _Tp &gt; </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="../../d3/d46/classcv_1_1Algorithm.html#a623841c33b58ea9c4847da04607e067b">load</a> (const <a class="el" href="../../dc/d84/group__core__basic.html#ga1f6634802eeadfd7245bc75cf3e216c2">String</a> &amp;filename, const <a class="el" href="../../dc/d84/group__core__basic.html#ga1f6634802eeadfd7245bc75cf3e216c2">String</a> &amp;objname=<a class="el" href="../../dc/d84/group__core__basic.html#ga1f6634802eeadfd7245bc75cf3e216c2">String</a>())</td></tr>
<tr class="memdesc:a623841c33b58ea9c4847da04607e067b"><td class="mdescLeft"> </td><td class="mdescRight">Loads algorithm from the file.  <a href="#a623841c33b58ea9c4847da04607e067b">More...</a><br/></td></tr>
<tr class="separator:a623841c33b58ea9c4847da04607e067b"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a3ba305a10d02479c13cf7d169c321547"><td class="memTemplParams" colspan="2">template&lt;typename _Tp &gt; </td></tr>
<tr class="memitem:a3ba305a10d02479c13cf7d169c321547"><td align="right" class="memTemplItemLeft" valign="top">static <a class="el" href="../../dc/d84/group__core__basic.html#ga6395ca871a678020c4a31fadf7e8cc63">Ptr</a>&lt; _Tp &gt; </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="../../d3/d46/classcv_1_1Algorithm.html#a3ba305a10d02479c13cf7d169c321547">loadFromString</a> (const <a class="el" href="../../dc/d84/group__core__basic.html#ga1f6634802eeadfd7245bc75cf3e216c2">String</a> &amp;strModel, const <a class="el" href="../../dc/d84/group__core__basic.html#ga1f6634802eeadfd7245bc75cf3e216c2">String</a> &amp;objname=<a class="el" href="../../dc/d84/group__core__basic.html#ga1f6634802eeadfd7245bc75cf3e216c2">String</a>())</td></tr>
<tr class="memdesc:a3ba305a10d02479c13cf7d169c321547"><td class="mdescLeft"> </td><td class="mdescRight">Loads algorithm from a String.  <a href="#a3ba305a10d02479c13cf7d169c321547">More...</a><br/></td></tr>
<tr class="separator:a3ba305a10d02479c13cf7d169c321547"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ad8c591bacb34c485f5b7a250c314fc53"><td class="memTemplParams" colspan="2">template&lt;typename _Tp &gt; </td></tr>
<tr class="memitem:ad8c591bacb34c485f5b7a250c314fc53"><td align="right" class="memTemplItemLeft" valign="top">static <a class="el" href="../../dc/d84/group__core__basic.html#ga6395ca871a678020c4a31fadf7e8cc63">Ptr</a>&lt; _Tp &gt; </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="../../d3/d46/classcv_1_1Algorithm.html#ad8c591bacb34c485f5b7a250c314fc53">read</a> (const <a class="el" href="../../de/dd9/classcv_1_1FileNode.html">FileNode</a> &amp;fn)</td></tr>
<tr class="memdesc:ad8c591bacb34c485f5b7a250c314fc53"><td class="mdescLeft"> </td><td class="mdescRight">Reads algorithm from the file node.  <a href="#ad8c591bacb34c485f5b7a250c314fc53">More...</a><br/></td></tr>
<tr class="separator:ad8c591bacb34c485f5b7a250c314fc53"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a68eeca71617474ad3d4561786f0289d2"><td align="right" class="memItemLeft" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d3/d46/classcv_1_1Algorithm.html#a68eeca71617474ad3d4561786f0289d2">writeFormat</a> (<a class="el" href="../../da/d56/classcv_1_1FileStorage.html">FileStorage</a> &amp;fs) const</td></tr>
<tr class="separator:a68eeca71617474ad3d4561786f0289d2"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a id="details" name="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>This is a base class for all more or less complex algorithms in OpenCV. </p>
<p>especially for classes of algorithms, for which there can be multiple implementations. The examples are stereo correspondence (for which there are algorithms like block matching, semi-global block matching, graph-cut etc.), background subtraction (which can be done using mixture-of-gaussians models, codebook-based algorithm etc.), optical flow (block matching, Lucas-Kanade, Horn-Schunck etc.).</p>
<p>Here is example of <a class="el" href="../../d0/d7a/classcv_1_1SimpleBlobDetector.html" title="Class for extracting blobs from an image. : ">SimpleBlobDetector</a> use in your application via <a class="el" href="../../d3/d46/classcv_1_1Algorithm.html" title="This is a base class for all more or less complex algorithms in OpenCV. ">Algorithm</a> interface: </p><div class="fragment"><div class="line">    Ptr&lt;Feature2D&gt; sbd = <a class="code" href="../../d0/d7a/classcv_1_1SimpleBlobDetector.html#a1d7a06c8b8749207a978e42cd8d0cdf6">SimpleBlobDetector::create</a>();</div><div class="line">    FileStorage fs_read(<span class="stringliteral">"SimpleBlobDetector_params.xml"</span>, <a class="code" href="../../da/d56/classcv_1_1FileStorage.html#a973e41cb75ef6230412a567723b7482daa0dcc459c4d100c35ccfa9a643827bed">FileStorage::READ</a>);</div><div class="line"></div><div class="line">    <span class="keywordflow">if</span> (fs_read.isOpened()) <span class="comment">// if we have file with parameters, read them</span></div><div class="line">    {</div><div class="line">        sbd-&gt;read(fs_read.root());</div><div class="line">        fs_read.release();</div><div class="line">    }</div><div class="line">    <span class="keywordflow">else</span> <span class="comment">// else modify the parameters and store them; user can later edit the file to use different parameters</span></div><div class="line">    {</div><div class="line">        fs_read.release();</div><div class="line">        FileStorage fs_write(<span class="stringliteral">"SimpleBlobDetector_params.xml"</span>, <a class="code" href="../../da/d56/classcv_1_1FileStorage.html#a973e41cb75ef6230412a567723b7482da747a241cefee7b8af34c3d804c864ad6">FileStorage::WRITE</a>);</div><div class="line">        sbd-&gt;write(fs_write);</div><div class="line">        fs_write.release();</div><div class="line">    }</div><div class="line"></div><div class="line">    Mat result, image = <a class="code" href="../../d4/da8/group__imgcodecs.html#ga288b8b3da0892bd651fce07b3bbd3a56">imread</a>(<span class="stringliteral">"../data/detect_blob.png"</span>, <a class="code" href="../../d8/d6a/group__imgcodecs__flags.html#gga61d9b0126a3e57d9277ac48327799c80af660544735200cbe942eea09232eb822">IMREAD_COLOR</a>);</div><div class="line">    vector&lt;KeyPoint&gt; keypoints;</div><div class="line">    sbd-&gt;detect(image, keypoints, Mat());</div><div class="line"></div><div class="line">    <a class="code" href="../../d4/d5d/group__features2d__draw.html#ga5d2bafe8c1c45289bc3403a40fb88920">drawKeypoints</a>(image, keypoints, result);</div><div class="line">    <span class="keywordflow">for</span> (vector&lt;KeyPoint&gt;::iterator k = keypoints.begin(); k != keypoints.end(); ++k)</div><div class="line">        <a class="code" href="../../d6/d6e/group__imgproc__draw.html#gaf10604b069374903dbd0f0488cb43670">circle</a>(result, k-&gt;pt, (<span class="keywordtype">int</span>)k-&gt;size, <a class="code" href="../../dc/d84/group__core__basic.html#ga599fe92e910c027be274233eccad7beb">Scalar</a>(0, 0, 255), 2);</div><div class="line"></div><div class="line">    <a class="code" href="../../d7/dfc/group__highgui.html#ga453d42fe4cb60e5723281a89973ee563">imshow</a>(<span class="stringliteral">"result"</span>, result);</div><div class="line">    <a class="code" href="../../d7/dfc/group__highgui.html#ga5628525ad33f52eab17feebcfba38bd7">waitKey</a>(0);</div></div><!-- fragment --></div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a827c8b2781ed17574805f373e6054ff1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a827c8b2781ed17574805f373e6054ff1">◆ </a></span>Algorithm()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">cv::Algorithm::Algorithm </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
</div>
</div>
<a id="a8ae826127fa0f1f8d10a24841bd376f8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8ae826127fa0f1f8d10a24841bd376f8">◆ </a></span>~Algorithm()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual cv::Algorithm::~Algorithm </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="aec9c965448e4dc851d7cacd3abd84cd1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aec9c965448e4dc851d7cacd3abd84cd1">◆ </a></span>clear()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void cv::Algorithm::clear </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>None</td><td>=</td><td>cv.Algorithm.clear(</td><td class="paramname"></td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Clears the algorithm state. </p>
<p>Reimplemented in <a class="el" href="../../dc/de2/classcv_1_1FlannBasedMatcher.html#a321910c88a7d8a887843ce2173f58a6e">cv::FlannBasedMatcher</a>, <a class="el" href="../../db/d39/classcv_1_1DescriptorMatcher.html#a01f97324f1393aae68d9c84874060454">cv::DescriptorMatcher</a>, <a class="el" href="../../d2/dde/classcv_1_1line__descriptor_1_1BinaryDescriptorMatcher.html#a6ce738fed1ec74e2c73c698aac632d96">cv::line_descriptor::BinaryDescriptorMatcher</a>, <a class="el" href="../../dd/dc5/classcv_1_1cuda_1_1DescriptorMatcher.html#a1450110e5dd90c1f50e94232bbacb408">cv::cuda::DescriptorMatcher</a>, <a class="el" href="../../d8/d0c/classcv_1_1quality_1_1QualityPSNR.html#adcac059e137150e7627f87c971a00d41">cv::quality::QualityPSNR</a>, <a class="el" href="../../da/d83/classcv_1_1quality_1_1QualityBase.html#a6b1ecba1e463610e584e67222d59064f">cv::quality::QualityBase</a>, <a class="el" href="../../d8/d81/classcv_1_1quality_1_1QualityGMSD.html#adb3c0ad4b55d524f3ec3cb499756a0fc">cv::quality::QualityGMSD</a>, <a class="el" href="../../d9/db5/classcv_1_1quality_1_1QualitySSIM.html#ac527e54b09d8f8375be2403426724709">cv::quality::QualitySSIM</a>, and <a class="el" href="../../d7/d80/classcv_1_1quality_1_1QualityMSE.html#a64ca28049724f66c76f1cd309d65722e">cv::quality::QualityMSE</a>.</p>
</div>
</div>
<a id="ab6a18f1825475643e94381697d413972"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab6a18f1825475643e94381697d413972">◆ </a></span>empty()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool cv::Algorithm::empty </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.Algorithm.empty(</td><td class="paramname"></td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Returns true if the <a class="el" href="../../d3/d46/classcv_1_1Algorithm.html" title="This is a base class for all more or less complex algorithms in OpenCV. ">Algorithm</a> is empty (e.g. in the very beginning or after unsuccessful read. </p>
<p>Reimplemented in <a class="el" href="../../db/d39/classcv_1_1DescriptorMatcher.html#ac0951eebe04d00aa66117eab337909e4">cv::DescriptorMatcher</a>, <a class="el" href="../../dd/d65/classcv_1_1face_1_1FaceRecognizer.html#aa60dc36e03135d32b94deaf1bad873f3">cv::face::FaceRecognizer</a>, <a class="el" href="../../db/d7d/classcv_1_1ml_1_1StatModel.html#a80afceed1710367d32d6232374162b97">cv::ml::StatModel</a>, <a class="el" href="../../d0/d13/classcv_1_1Feature2D.html#ae5fbe71c7d46427671a0845934ae063b">cv::Feature2D</a>, <a class="el" href="../../da/dd5/classcv_1_1BaseCascadeClassifier.html#a5c900a29bf394dc30fa541fe26f2a294">cv::BaseCascadeClassifier</a>, <a class="el" href="../../dd/dc5/classcv_1_1cuda_1_1DescriptorMatcher.html#a20fffe7c2f0d6ae45c8a4a854c9cba2f">cv::cuda::DescriptorMatcher</a>, <a class="el" href="../../d8/d0c/classcv_1_1quality_1_1QualityPSNR.html#a658a09005754944d17700c40b2787e52">cv::quality::QualityPSNR</a>, <a class="el" href="../../da/d83/classcv_1_1quality_1_1QualityBase.html#a3223929148393e56a9f01370edde82ee">cv::quality::QualityBase</a>, <a class="el" href="../../dc/dd7/classcv_1_1face_1_1BasicFaceRecognizer.html#abb6c25641a9fd6f7428aeeea7d0f1491">cv::face::BasicFaceRecognizer</a>, <a class="el" href="../../d8/d81/classcv_1_1quality_1_1QualityGMSD.html#adda3eb375a0e081809745aca9e98bacc">cv::quality::QualityGMSD</a>, <a class="el" href="../../d9/db5/classcv_1_1quality_1_1QualitySSIM.html#a85d066936579d6c18aa6a981be331283">cv::quality::QualitySSIM</a>, and <a class="el" href="../../d7/d80/classcv_1_1quality_1_1QualityMSE.html#a9a92754b95a53d71859c2dbf31b68a7a">cv::quality::QualityMSE</a>.</p>
</div>
</div>
<a id="a286fc82744ccab3d248aca44524266a9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a286fc82744ccab3d248aca44524266a9">◆ </a></span>getDefaultName()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="../../dc/d84/group__core__basic.html#ga1f6634802eeadfd7245bc75cf3e216c2">String</a> cv::Algorithm::getDefaultName </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.Algorithm.getDefaultName(</td><td class="paramname"></td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Returns the algorithm string identifier. This string is used as top level xml/yml node tag when the object is saved to a file or string. </p>
<p>Reimplemented in <a class="el" href="../../d8/d30/classcv_1_1AKAZE.html#ab7009661e4d340d2ad958fe84a2e0466">cv::AKAZE</a>, <a class="el" href="../../d3/d61/classcv_1_1KAZE.html#a7ebf328b9444907263d1cf98a9296d6d">cv::KAZE</a>, <a class="el" href="../../d0/d7a/classcv_1_1SimpleBlobDetector.html#ab9b372db5d37e1fbd9b803a8831f2478">cv::SimpleBlobDetector</a>, <a class="el" href="../../df/d21/classcv_1_1GFTTDetector.html#ad5d28599095934d718d1177e740a6d47">cv::GFTTDetector</a>, <a class="el" href="../../d7/d19/classcv_1_1AgastFeatureDetector.html#a23c887c21760fb28a830c11cfab825a2">cv::AgastFeatureDetector</a>, <a class="el" href="../../df/d74/classcv_1_1FastFeatureDetector.html#a23507f8cda16211e6148c27c578131e6">cv::FastFeatureDetector</a>, <a class="el" href="../../d3/d28/classcv_1_1MSER.html#a412b100d43b81c56b9c7e060886453c4">cv::MSER</a>, <a class="el" href="../../db/d95/classcv_1_1ORB.html#aa4d158aa05a1abfaa9bf30b96938a2b0">cv::ORB</a>, <a class="el" href="../../de/dbf/classcv_1_1BRISK.html#af083098ca2dc1a6acdd0705899cc1bc4">cv::BRISK</a>, <a class="el" href="../../d7/d60/classcv_1_1SIFT.html#a90178d381b96cee4a4ed87a0209c1b9b">cv::SIFT</a>, <a class="el" href="../../da/d0b/classcv_1_1AffineFeature.html#a38fc69a2a7f0f79b01c52090a1055a0b">cv::AffineFeature</a>, and <a class="el" href="../../d0/d13/classcv_1_1Feature2D.html#a40182e88bf6aa2c74311c9927ba056dc">cv::Feature2D</a>.</p>
</div>
</div>
<a id="a623841c33b58ea9c4847da04607e067b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a623841c33b58ea9c4847da04607e067b">◆ </a></span>load()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Tp &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="../../dc/d84/group__core__basic.html#ga6395ca871a678020c4a31fadf7e8cc63">Ptr</a>&lt;_Tp&gt; cv::Algorithm::load </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="../../dc/d84/group__core__basic.html#ga1f6634802eeadfd7245bc75cf3e216c2">String</a> &amp; </td>
          <td class="paramname"><em>filename</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="../../dc/d84/group__core__basic.html#ga1f6634802eeadfd7245bc75cf3e216c2">String</a> &amp; </td>
          <td class="paramname"><em>objname</em> = <code><a class="el" href="../../dc/d84/group__core__basic.html#ga1f6634802eeadfd7245bc75cf3e216c2">String</a>()</code> </td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Loads algorithm from the file. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">filename</td><td>Name of the file to read. </td></tr>
    <tr><td class="paramname">objname</td><td>The optional name of the node to read (if empty, the first top-level node will be used)</td></tr>
  </table>
  </dd>
</dl>
<p>This is static template method of <a class="el" href="../../d3/d46/classcv_1_1Algorithm.html" title="This is a base class for all more or less complex algorithms in OpenCV. ">Algorithm</a>. It's usage is following (in the case of SVM): </p><div class="fragment"><div class="line">Ptr&lt;SVM&gt; svm = Algorithm::load&lt;SVM&gt;(<span class="stringliteral">"my_svm_model.xml"</span>);</div></div><!-- fragment --><p> In order to make this method work, the derived class must overwrite <a class="el" href="../../d3/d46/classcv_1_1Algorithm.html#aef2ad3f4145bd6e8c3664eb1c4b5e1e6" title="Reads algorithm parameters from a file storage. ">Algorithm::read</a>(const <a class="el" href="../../de/dd9/classcv_1_1FileNode.html" title="File Storage Node class. ">FileNode</a>&amp; fn). </p>
</div>
</div>
<a id="a3ba305a10d02479c13cf7d169c321547"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3ba305a10d02479c13cf7d169c321547">◆ </a></span>loadFromString()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Tp &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="../../dc/d84/group__core__basic.html#ga6395ca871a678020c4a31fadf7e8cc63">Ptr</a>&lt;_Tp&gt; cv::Algorithm::loadFromString </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="../../dc/d84/group__core__basic.html#ga1f6634802eeadfd7245bc75cf3e216c2">String</a> &amp; </td>
          <td class="paramname"><em>strModel</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="../../dc/d84/group__core__basic.html#ga1f6634802eeadfd7245bc75cf3e216c2">String</a> &amp; </td>
          <td class="paramname"><em>objname</em> = <code><a class="el" href="../../dc/d84/group__core__basic.html#ga1f6634802eeadfd7245bc75cf3e216c2">String</a>()</code> </td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Loads algorithm from a String. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">strModel</td><td>The string variable containing the model you want to load. </td></tr>
    <tr><td class="paramname">objname</td><td>The optional name of the node to read (if empty, the first top-level node will be used)</td></tr>
  </table>
  </dd>
</dl>
<p>This is static template method of <a class="el" href="../../d3/d46/classcv_1_1Algorithm.html" title="This is a base class for all more or less complex algorithms in OpenCV. ">Algorithm</a>. It's usage is following (in the case of SVM): </p><div class="fragment"><div class="line">Ptr&lt;SVM&gt; svm = Algorithm::loadFromString&lt;SVM&gt;(myStringModel);</div></div><!-- fragment --> 
</div>
</div>
<a id="aef2ad3f4145bd6e8c3664eb1c4b5e1e6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aef2ad3f4145bd6e8c3664eb1c4b5e1e6">◆ </a></span>read() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void cv::Algorithm::read </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="../../de/dd9/classcv_1_1FileNode.html">FileNode</a> &amp; </td>
          <td class="paramname"><em>fn</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>None</td><td>=</td><td>cv.Algorithm.read(</td><td class="paramname">fn</td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Reads algorithm parameters from a file storage. </p>
<p>Reimplemented in <a class="el" href="../../dc/de2/classcv_1_1FlannBasedMatcher.html#a54caa24612b5b6840c2df65b924a557a">cv::FlannBasedMatcher</a>, <a class="el" href="../../db/d39/classcv_1_1DescriptorMatcher.html#abb46ea487ffa0c0f9dd72d3de9fd42ab">cv::DescriptorMatcher</a>, <a class="el" href="../../dd/d65/classcv_1_1face_1_1FaceRecognizer.html#a6ce52a3c8941aaa3cd09c31d6a6ef192">cv::face::FaceRecognizer</a>, <a class="el" href="../../da/dfe/classcv_1_1optflow_1_1GPCForest.html#ad1633ff926fe62db586c652c637db131">cv::optflow::GPCForest&lt; T &gt;</a>, <a class="el" href="../../d6/d83/classcv_1_1line__descriptor_1_1BinaryDescriptor.html#a9a4c83beabf93afec71cfeb152dffc5a">cv::line_descriptor::BinaryDescriptor</a>, <a class="el" href="../../d0/d13/classcv_1_1Feature2D.html#a484d5df8a2768a38073c581f056d91d7">cv::Feature2D</a>, <a class="el" href="../../d4/d4d/classcv_1_1optflow_1_1GPCTree.html#a68f772c4b664f8de4cf659f1b71350b8">cv::optflow::GPCTree</a>, <a class="el" href="../../db/dfe/classcv_1_1legacy_1_1Tracker.html#a119e5cb27390a041a69f836fa65cc1d9">cv::legacy::Tracker</a>, <a class="el" href="../../df/d37/classcv_1_1saliency_1_1StaticSaliencySpectralResidual.html#acc8d168b3843059d4350b7731b980790">cv::saliency::StaticSaliencySpectralResidual</a>, and <a class="el" href="../../dc/dd7/classcv_1_1face_1_1BasicFaceRecognizer.html#af4ccaaa1001e0c9437b7e969be1cdf7b">cv::face::BasicFaceRecognizer</a>.</p>
</div>
</div>
<a id="ad8c591bacb34c485f5b7a250c314fc53"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad8c591bacb34c485f5b7a250c314fc53">◆ </a></span>read() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename _Tp &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="../../dc/d84/group__core__basic.html#ga6395ca871a678020c4a31fadf7e8cc63">Ptr</a>&lt;_Tp&gt; cv::Algorithm::read </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="../../de/dd9/classcv_1_1FileNode.html">FileNode</a> &amp; </td>
          <td class="paramname"><em>fn</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>None</td><td>=</td><td>cv.Algorithm.read(</td><td class="paramname">fn</td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Reads algorithm from the file node. </p>
<p>This is static template method of <a class="el" href="../../d3/d46/classcv_1_1Algorithm.html" title="This is a base class for all more or less complex algorithms in OpenCV. ">Algorithm</a>. It's usage is following (in the case of SVM): </p><div class="fragment"><div class="line"><a class="code" href="../../da/d56/classcv_1_1FileStorage.html">cv::FileStorage</a> fsRead(<span class="stringliteral">"example.xml"</span>, <a class="code" href="../../da/d56/classcv_1_1FileStorage.html#a973e41cb75ef6230412a567723b7482daa0dcc459c4d100c35ccfa9a643827bed">FileStorage::READ</a>);</div><div class="line">Ptr&lt;SVM&gt; svm = Algorithm::read&lt;SVM&gt;(fsRead.root());</div></div><!-- fragment --><p> In order to make this method work, the derived class must overwrite <a class="el" href="../../d3/d46/classcv_1_1Algorithm.html#aef2ad3f4145bd6e8c3664eb1c4b5e1e6" title="Reads algorithm parameters from a file storage. ">Algorithm::read</a>(const <a class="el" href="../../de/dd9/classcv_1_1FileNode.html" title="File Storage Node class. ">FileNode</a>&amp; fn) and also have static create() method without parameters (or with all the optional parameters) </p>
</div>
</div>
<a id="a0a880744bc4e3f45711444571df47d67"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0a880744bc4e3f45711444571df47d67">◆ </a></span>save()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void cv::Algorithm::save </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="../../dc/d84/group__core__basic.html#ga1f6634802eeadfd7245bc75cf3e216c2">String</a> &amp; </td>
          <td class="paramname"><em>filename</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>None</td><td>=</td><td>cv.Algorithm.save(</td><td class="paramname">filename</td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Saves the algorithm to a file. In order to make this method work, the derived class must implement Algorithm::write(FileStorage&amp; fs). </p>
</div>
</div>
<a id="a1f8ad7b8add515077367fb9949a174d2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1f8ad7b8add515077367fb9949a174d2">◆ </a></span>write() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void cv::Algorithm::write </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../da/d56/classcv_1_1FileStorage.html">FileStorage</a> &amp; </td>
          <td class="paramname"><em>fs</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>None</td><td>=</td><td>cv.Algorithm.write(</td><td class="paramname">fs[, name]</td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Stores algorithm parameters in a file storage. </p>
<p>Reimplemented in <a class="el" href="../../dc/de2/classcv_1_1FlannBasedMatcher.html#af612c5c0956c84b96886214850d3a0bc">cv::FlannBasedMatcher</a>, <a class="el" href="../../db/d39/classcv_1_1DescriptorMatcher.html#abcba89024601e88afe6e4cc2349798c3">cv::DescriptorMatcher</a>, <a class="el" href="../../dd/d65/classcv_1_1face_1_1FaceRecognizer.html#a4756dbf9b97408ba5f3677296c3a1695">cv::face::FaceRecognizer</a>, <a class="el" href="../../da/dfe/classcv_1_1optflow_1_1GPCForest.html#a317f6d1fd8a028e47c469eb1778af9db">cv::optflow::GPCForest&lt; T &gt;</a>, <a class="el" href="../../dc/d54/classcv_1_1bioinspired_1_1Retina.html#af0fb1fda44face9993785ef41b38430d">cv::bioinspired::Retina</a>, <a class="el" href="../../d6/d83/classcv_1_1line__descriptor_1_1BinaryDescriptor.html#a7e39bfe7462f22ba08b11474827c68eb">cv::line_descriptor::BinaryDescriptor</a>, <a class="el" href="../../d0/d13/classcv_1_1Feature2D.html#a45193ec538b7178e5ce6f38394ca131a">cv::Feature2D</a>, <a class="el" href="../../d4/d4d/classcv_1_1optflow_1_1GPCTree.html#a396150fc270fc42152219b39105f29c4">cv::optflow::GPCTree</a>, <a class="el" href="../../da/d6e/classcv_1_1bioinspired_1_1TransientAreasSegmentationModule.html#a201d5ffa41f8eee4e98e179fa036a07a">cv::bioinspired::TransientAreasSegmentationModule</a>, <a class="el" href="../../db/dfe/classcv_1_1legacy_1_1Tracker.html#a610db7eb6665ad50ad5df9ec16425d28">cv::legacy::Tracker</a>, <a class="el" href="../../df/d37/classcv_1_1saliency_1_1StaticSaliencySpectralResidual.html#a798e24c07c8632fa44c46cb00ac4bb43">cv::saliency::StaticSaliencySpectralResidual</a>, and <a class="el" href="../../dc/dd7/classcv_1_1face_1_1BasicFaceRecognizer.html#a7f0e55c29e3c982f389cf601141359ac">cv::face::BasicFaceRecognizer</a>.</p>
</div>
</div>
<a id="a763a62d1b03042eef7d7fc3ac6c87c79"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a763a62d1b03042eef7d7fc3ac6c87c79">◆ </a></span>write() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cv::Algorithm::write </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="../../dc/d84/group__core__basic.html#ga6395ca871a678020c4a31fadf7e8cc63">Ptr</a>&lt; <a class="el" href="../../da/d56/classcv_1_1FileStorage.html">FileStorage</a> &gt; &amp; </td>
          <td class="paramname"><em>fs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="../../dc/d84/group__core__basic.html#ga1f6634802eeadfd7245bc75cf3e216c2">String</a> &amp; </td>
          <td class="paramname"><em>name</em> = <code><a class="el" href="../../dc/d84/group__core__basic.html#ga1f6634802eeadfd7245bc75cf3e216c2">String</a>()</code> </td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>None</td><td>=</td><td>cv.Algorithm.write(</td><td class="paramname">fs[, name]</td><td>)</td></tr></table>
</div><div class="memdoc">
<p>simplified API for language bindings This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>
</div>
</div>
<a id="a68eeca71617474ad3d4561786f0289d2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a68eeca71617474ad3d4561786f0289d2">◆ </a></span>writeFormat()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void cv::Algorithm::writeFormat </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../da/d56/classcv_1_1FileStorage.html">FileStorage</a> &amp; </td>
          <td class="paramname"><em>fs</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>opencv2/<a class="el" href="../../d0/d9c/core_2include_2opencv2_2core_8hpp.html">core.hpp</a></li>
</ul>
</div><!-- contents -->
<!-- HTML footer for doxygen 1.8.6-->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Apr 2 2021 11:36:42 for OpenCV by  <a href="http://www.doxygen.org/index.html">
<img alt="doxygen" class="footer" src="../../doxygen.png"/>
</a> 1.8.13
</small></address>
<script type="text/javascript">
//<![CDATA[
addTutorialsButtons();
//]]>
</script>
</body>
</html>
